<?php
	/**
	* Klass VALIDATE - Innehåller funktioner för att validera.
	*/
	class Validate
	{	
		//----- FUNKTION: VALIDATE MAIL ----------------------------------------
		/**
		 * Funktion för att validera e-post adresser.
		 * @param string $mail E-post adressen som ska valideras.
		 * @return bool false Retunerar false om valideringen inte går igenom.
		 */
		public function ValidateMail($mail)
		{
			if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
				return true;
			}
			return false;
		}


		//----- FUNKTION: VALIDATE PASSWORD ------------------------------------
		/**
		 * Funktion för att validera lösenord. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Längd 6-30 tecken och endast bokstäver mellan a-z, A-Z,siffor 0-9, understreck och bindestreck.
		 * @param string $password Lösenordet som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidatePassword($password)
		{
			if (preg_match("/^[a-zA-Z0-9_-]{6,30}$/", $password)){				
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE USERNAME ------------------------------------
		/**
		 * Funktion för att validera användarnamn. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Längd 5-30 tecken och endast bokstäver mellan a-z, A-Z,siffor 0-9, understreck och bindestreck.
		 * @param string $username Användarnamnet som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateUsername($username)
		{
			if (preg_match("/^[a-zA-Z0-9_-]{5,30}$/", $username)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE CUSTOMERNAME --------------------------------
		/**
		 * Funktion för att validera kund namnet. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Längd 5-30 tecken och endast bokstäver mellan a-z, A-Z,siffor 0-9, understreck och bindestreck.
		 * @param string $customername Kundnamnet som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateCustomername($customername)
		{
			if (preg_match("/^[a-zA-Z0-9_-]{5,30}$/", $customername)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE ORGANISATION ID -----------------------------
		/**
		 * Funktion för att validera organisations numret. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Först 6 st siffror 0-9, sedan 4 st siffror 0-9 med bindestreck imellan.
		 * @param string $onr Organisationsnummret som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateOrganisationID($onr)
		{
			if (preg_match("/^([0-9]{6})-([0-9]{4})$/", $onr)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE POSTALCODE ----------------------------------
		/**
		 * Funktion för att validera postnumret. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Siffor 0-9 och i formatet först 3 siffror sedan 2 siffor med ett mellanslag i mellan.
		 * @param string $postalcode Postnumret som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidatePostalcode($postalcode)
		{
			if (preg_match("/^([0-9]{3}) ([0-9]{2})$/", $postalcode)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE PHONE ---------------------------------------
		/**
		 * Funktion för att validera telefonnumret. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Siffror 0-9 och mellan 2-15 tecken långt.
		 * @param string $phone Telefonnumret som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidatePhone($phone)
		{
			if (preg_match("/^([0-9]{2,15})$/", $phone)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE ASSIGNMENTNAME ------------------------------
		/**
		 * Funktion för att validera namnet på uppdraget. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Bokstäver a-z A-z Tecken _ - och mellan 5-50 tecken långt.
		 * @param string $assignmentName Uppdragsnamnet som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateAssignmentname($assignmentName)
		{
			if (preg_match("/^[a-zA-Z0-9 _-]{5,50}$/", $assignmentName)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE START DATE ----------------------------------
		/**
		 * Funktion för att validera startdatum. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Först 4st siffror 0-9, sen 2st siffror 0-9 och sist 2st siffror 0-9 med bindestreck imellan.
		 * @param string $startDate Start datumet osm ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateStartdate($startDate)
		{
			if (preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $startDate)){
				return true;
			} else {
				return false;
			}
		}


		//----- FUNKTION: VALIDATE END DATE ------------------------------------
		/**
		 * Funktion för att validera slutdatum. Kontrollerar att det är inskrivet i rätt format och att inga ogiltig teckan används. Först 4st siffror 0-9, sen 2st siffror 0-9 och sist 2st siffror 0-9 med bindestreck imellan.
		 * @param string $endDate Slutdatumet som ska valideras.
		 * @return bool true/false Anger om valideringen lyckades eller inte.
		 */
		public function ValidateEnddate($endDate)
		{
			if (preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/", $endDate)){
				return true;
			} else {
				return false;
			}
		}
	}
?>